home *** CD-ROM | disk | FTP | other *** search
- /extrude
- {
- /chg xdf /deltay xdf /deltax xdf
- /tc1 xdf storerect /tc2 xdf
- /factor .95 def
- newpath
- tc1 length 2 eq
- {/tc1 tc1 spottoprocess def} if
- tc2 length 2 eq
- {/tc2 tc2 spottoprocess def} if
- /cnt todraw def
- /ts
- {gsave currentpoint pop /xstart xdf blockxoff wordxoff add yoff
- rmoveto scalef dup scale right left sub 2 div xstart left sub sub
- neg curtextheight 2 div neg rmoveto awidthshow grestore}def
- 1 1 todraw div neg 0
- {
- dup .02 le{pop 0}if /frac xdf
- gsave
-
- 0 1 3
- {
- bc4 exch
- tc1 1 index get
- tc2 2 index get
- 1 index sub
- frac mul add put
- }for
- bc4 vc
- dup exec
- cnt 1 ne{grestore}if
- /cnt cnt 1 sub def
- } for
- /ts{gsave awidthshow grestore}def
- tc1 vc dup exec tc2 vc
- curtextheight .005 mul setlinewidth
- /ts {{false charpath stroke}ta} def exec
- grestore
- }bdf
- /blockxoff
- {right left sub 2 div currentpoint pop left sub sub}def
- /yoff
- {curtextheight 2 div deltay todraw div cnt mul add}def
-
- /wordxoff
- {deltax todraw div cnt mul}def
- /todraw
- { deltax dup mul deltay dup mul add sqrt factor mul
- 100 chg sub abs factor mul add
- dup 0 le{pop 1}{round}ifelse} def
- /scalef
- {100 chg sub abs 100 div todraw div cnt mul
- chg 100 ge{1 add}{1 exch sub}ifelse}def
- /spottoprocess
- {aload pop spots exch get aload pop pop pop
- 0 1 3{pop 4 index mul 4 -1 roll}for
- 4 array astore exch pop}bdf